home *** CD-ROM | disk | FTP | other *** search
/ Aminet 52 / Aminet 52 (2002)(GTI - Schatztruhe)[!][Dec 2002].iso / Aminet / util / moni / Scout-src.lha / include / MUI / NListtree_mcc.h < prev    next >
C/C++ Source or Header  |  2002-09-16  |  22KB  |  687 lines

  1. /*h
  2. Class:      MCC_NListtree
  3. Copyright:  (c)1999-2000 by Carsten Scholling
  4. Author:     Carsten Scholling
  5. Contact:    cs@aphaso.de
  6. Contents:   Registered class of the Magic User Interface.
  7. h*/
  8.  
  9.  
  10. /*** Include stuff ***/
  11.  
  12. #ifndef NLISTTREE_MCC_H
  13. #define NLISTTREE_MCC_H
  14.  
  15. #ifndef LIBRARIES_MUI_H
  16. #include "libraries/mui.h"
  17. #endif
  18.  
  19.  
  20. /*** MUI Defines ***/
  21.  
  22. #define MUIC_NListtree  "NListtree.mcc"
  23. #define NListtreeObject MUI_NewObject(MUIC_NListtree
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30. /*** Attributes ***/
  31.  
  32. #define MUIA_NListtree_Active                               0xfec81201  // *** [.SGN]
  33. #define MUIA_NListtree_ActiveList                           0xfec81202  // *** [..GN]
  34. #define MUIA_NListtree_CloseHook                            0xfec81203  // *** [IS..]
  35. #define MUIA_NListtree_ConstructHook                        0xfec81204  // *** [IS..]
  36. #define MUIA_NListtree_DestructHook                         0xfec81205  // *** [IS..]
  37. #define MUIA_NListtree_DisplayHook                          0xfec81206  // *** [IS..]
  38. #define MUIA_NListtree_DoubleClick                          0xfec81207  // *** [ISGN]
  39. #define MUIA_NListtree_DragDropSort                         0xfec81208  // *** [IS..]
  40. #define MUIA_NListtree_DupNodeName                          0xfec81209  // *** [IS..]
  41. #define MUIA_NListtree_EmptyNodes                           0xfec8120a  // *** [IS..]
  42. #define MUIA_NListtree_Format                               0xfec8120b  // *** [IS..]
  43. #define MUIA_NListtree_OpenHook                             0xfec8120c  // *** [IS..]
  44. #define MUIA_NListtree_Quiet                                0xfec8120d  // *** [.S..]
  45. #define MUIA_NListtree_CompareHook                          0xfec8120e  // *** [IS..]
  46. #define MUIA_NListtree_Title                                0xfec8120f  // *** [IS..]
  47. #define MUIA_NListtree_TreeColumn                           0xfec81210  // *** [ISG.]
  48. #define MUIA_NListtree_AutoVisible                          0xfec81211  // *** [ISG.]
  49. #define MUIA_NListtree_FindNameHook                         0xfec81212  // *** [IS..]
  50. #define MUIA_NListtree_MultiSelect                          0xfec81213  // *** [I...]
  51. #define MUIA_NListtree_MultiTestHook                        0xfec81214  // *** [IS..]
  52. #define MUIA_NListtree_CopyToClipHook                       0xfec81217  // *** [IS..]
  53. #define MUIA_NListtree_DropType                             0xfec81218  // *** [..G.]
  54. #define MUIA_NListtree_DropTarget                           0xfec81219  // *** [..G.]
  55. #define MUIA_NListtree_DropTargetPos                        0xfec8121a  // *** [..G.]
  56. #define MUIA_NListtree_FindUserDataHook                     0xfec8121b  // *** [IS..]
  57. #define MUIA_NListtree_ShowTree                             0xfec8121c  // *** [ISG.]
  58. #define MUIA_NListtree_SelectChange                         0xfec8121d  // *** [ISGN]
  59.  
  60.  
  61. /*** Special attribute values ***/
  62.  
  63. #define MUIV_NListtree_Active_Off                           0
  64. #define MUIV_NListtree_Active_Parent                        -2
  65. #define MUIV_NListtree_Active_First                         -3
  66. #define MUIV_NListtree_Active_FirstVisible                  -4
  67. #define MUIV_NListtree_Active_LastVisible                   -5
  68.  
  69. #define MUIV_NListtree_ActiveList_Off                       0
  70.  
  71. #define MUIV_NListtree_AutoVisible_Off                      0
  72. #define MUIV_NListtree_AutoVisible_Normal                   1
  73. #define MUIV_NListtree_AutoVisible_FirstOpen                2
  74. #define MUIV_NListtree_AutoVisible_Expand                   3
  75.  
  76. #define MUIV_NListtree_CompareHook_Head                     0
  77. #define MUIV_NListtree_CompareHook_Tail                     -1
  78. #define MUIV_NListtree_CompareHook_LeavesTop                -2
  79. #define MUIV_NListtree_CompareHook_LeavesMixed              -3
  80. #define MUIV_NListtree_CompareHook_LeavesBottom             -4
  81.  
  82. #define MUIV_NListtree_ConstructHook_String                 -1
  83. #define MUIV_NListtree_ConstructHook_Flag_AutoCreate        (1<<15)
  84.  
  85. #define MUIV_NListtree_CopyToClipHook_Default               0
  86.  
  87. #define MUIV_NListtree_DestructHook_String                  -1
  88.  
  89. #define MUIV_NListtree_DisplayHook_Default                  -1
  90.  
  91. #define MUIV_NListtree_DoubleClick_Off                      -1
  92. #define MUIV_NListtree_DoubleClick_All                      -2
  93. #define MUIV_NListtree_DoubleClick_Tree                     -3
  94. #define MUIV_NListtree_DoubleClick_NoTrigger                -4
  95.  
  96. #define MUIV_NListtree_DropType_None                        0
  97. #define MUIV_NListtree_DropType_Above                       1
  98. #define MUIV_NListtree_DropType_Below                       2
  99. #define MUIV_NListtree_DropType_Onto                        3
  100. #define MUIV_NListtree_DropType_Sorted                      4
  101.  
  102. #define MUIV_NListtree_FindNameHook_CaseSensitive           0
  103. #define MUIV_NListtree_FindNameHook_CaseInsensitive         -1
  104. #define MUIV_NListtree_FindNameHook_Part                    -2
  105. #define MUIV_NListtree_FindNameHook_PartCaseInsensitive     -3
  106. #define MUIV_NListtree_FindNameHook_PointerCompare          -4
  107.  
  108. #define MUIV_NListtree_FindUserDataHook_CaseSensitive       0
  109. #define MUIV_NListtree_FindUserDataHook_CaseInsensitive     -1
  110. #define MUIV_NListtree_FindUserDataHook_Part                -2
  111. #define MUIV_NListtree_FindUserDataHook_PartCaseInsensitive -3
  112. #define MUIV_NListtree_FindUserDataHook_PointerCompare      -4
  113.  
  114. #define MUIV_NListtree_MultiSelect_None                     0
  115. #define MUIV_NListtree_MultiSelect_Default                  1
  116. #define MUIV_NListtree_MultiSelect_Shifted                  2
  117. #define MUIV_NListtree_MultiSelect_Always                   3
  118.  
  119.  
  120. #define MUIV_NListtree_ShowTree_Toggle                      -1
  121.  
  122.  
  123. /*** Structures & Flags ***/
  124.  
  125. struct MUI_NListtree_TreeNode {
  126.     struct  MinNode tn_Node;    // ***  To make it a node.
  127.     STRPTR  tn_Name;            // ***  Simple name field.
  128.     UWORD   tn_Flags;           // ***  Used for the flags below.
  129.     APTR    tn_User;            // ***  Free for user data.
  130. };
  131.  
  132.  
  133. #define TNF_OPEN                    (1<<0)
  134. #define TNF_LIST                    (1<<1)
  135. #define TNF_FROZEN                  (1<<2)
  136. #define TNF_NOSIGN                  (1<<3)
  137. #define TNF_SELECTED                (1<<4)
  138.  
  139.  
  140.  
  141. struct MUI_NListtree_TestPos_Result {
  142.     struct  MUI_NListtree_TreeNode *tpr_TreeNode;
  143.     UWORD   tpr_Type;
  144.     LONG    tpr_ListEntry;
  145.     UWORD   tpr_ListFlags;
  146.     WORD    tpr_Column;
  147.  
  148. };
  149.  
  150. #define tpr_Flags tpr_Type      /* OBSOLETE */
  151.  
  152.  
  153. /*** Methods ***/
  154.  
  155. #define MUIM_NListtree_Open                                 0xfec81101
  156. #define MUIM_NListtree_Close                                0xfec81102
  157. #define MUIM_NListtree_Insert                               0xfec81103
  158. #define MUIM_NListtree_Remove                               0xfec81104
  159. #define MUIM_NListtree_Exchange                             0xfec81105
  160. #define MUIM_NListtree_Move                                 0xfec81106
  161. #define MUIM_NListtree_Rename                               0xfec81107
  162. #define MUIM_NListtree_FindName                             0xfec81108
  163. #define MUIM_NListtree_GetEntry                             0xfec81109
  164. #define MUIM_NListtree_GetNr                                0xfec8110a
  165. #define MUIM_NListtree_Sort                                 0xfec8110b
  166. #define MUIM_NListtree_TestPos                              0xfec8110c
  167. #define MUIM_NListtree_Redraw                               0xfec8110d
  168. #define MUIM_NListtree_NextSelected                         0xfec81110
  169. #define MUIM_NListtree_MultiTest                            0xfec81111
  170. #define MUIM_NListtree_Select                               0xfec81112
  171. #define MUIM_NListtree_Copy                                 0xfec81113
  172. #define MUIM_NListtree_InsertStruct                         0xfec81114  // *** Insert a struct (like a path) into the list.
  173. #define MUIM_NListtree_Active                               0xfec81115  // *** Method which gives the active node/number.
  174. #define MUIM_NListtree_DoubleClick                          0xfec81116  // *** Occurs on every double click.
  175. #define MUIM_NListtree_PrevSelected                         0xfec81118  // *** Like reverse NextSelected.
  176. #define MUIM_NListtree_CopyToClip                           0xfec81119  // *** Copy an entry or part to the clipboard.
  177. #define MUIM_NListtree_FindUserData                         0xfec8111a  // *** Find a node upon user data.
  178. #define MUIM_NListtree_Clear                                0xfec8111b  // *** Clear complete tree.
  179. #define MUIM_NListtree_DropType                             0xfec8111e  // ***
  180. #define MUIM_NListtree_DropDraw                             0xfec8111f  // ***
  181.  
  182.  
  183. /*** Method structs ***/
  184.  
  185. struct MUIP_NListtree_Open {
  186.     ULONG MethodID;
  187.     struct MUI_NListtree_TreeNode *ListNode;
  188.     struct MUI_NListtree_TreeNode *TreeNode;
  189.     ULONG Flags;
  190. };
  191.  
  192.  
  193. struct MUIP_NListtree_Close {
  194.     ULONG MethodID;
  195.     struct MUI_NListtree_TreeNode *ListNode;
  196.     struct MUI_NListtree_TreeNode *TreeNode;
  197.     ULONG Flags;
  198. };
  199.  
  200.  
  201. struct MUIP_NListtree_Insert {
  202.     ULONG   MethodID;
  203.     STRPTR  Name;
  204.     APTR    User;
  205.     struct  MUI_NListtree_TreeNode *ListNode;
  206.     struct  MUI_NListtree_TreeNode *PrevNode;
  207.     ULONG   Flags;
  208. };
  209.  
  210.  
  211. struct MUIP_NListtree_Remove {
  212.     ULONG MethodID;
  213.     struct MUI_NListtree_TreeNode *ListNode;
  214.     struct MUI_NListtree_TreeNode *TreeNode;
  215.     ULONG Flags;
  216. };
  217.  
  218.  
  219. struct MUIP_NListtree_Clear {
  220.     ULONG MethodID;
  221.     struct MUI_NListtree_TreeNode *ListNode;
  222.     ULONG Flags;
  223. };
  224.  
  225.  
  226. struct MUIP_NListtree_FindName {
  227.     ULONG   MethodID;
  228.     struct  MUI_NListtree_TreeNode *ListNode;
  229.     STRPTR  Name;
  230.     ULONG   Flags;
  231. };
  232.  
  233.  
  234. struct MUIP_NListtree_FindUserData {
  235.     ULONG   MethodID;
  236.     struct  MUI_NListtree_TreeNode *ListNode;
  237.     APTR    User;
  238.     ULONG   Flags;
  239. };
  240.  
  241.  
  242. struct MUIP_NListtree_GetEntry {
  243.     ULONG MethodID;
  244.     struct MUI_NListtree_TreeNode *Node;
  245.     LONG  Position;
  246.     ULONG Flags;
  247. };
  248.  
  249.  
  250. struct MUIP_NListtree_GetNr {
  251.     ULONG MethodID;
  252.     struct MUI_NListtree_TreeNode *TreeNode;
  253.     ULONG Flags;
  254. };
  255.  
  256.  
  257. struct MUIP_NListtree_Move {
  258.     ULONG MethodID;
  259.     struct MUI_NListtree_TreeNode *OldListNode;
  260.     struct MUI_NListtree_TreeNode *OldTreeNode;
  261.     struct MUI_NListtree_TreeNode *NewListNode;
  262.     struct MUI_NListtree_TreeNode *NewTreeNode;
  263.     ULONG Flags;
  264. };
  265.  
  266.  
  267. struct MUIP_NListtree_Exchange {
  268.     ULONG MethodID;
  269.     struct MUI_NListtree_TreeNode *ListNode1;
  270.     struct MUI_NListtree_TreeNode *TreeNode1;
  271.     struct MUI_NListtree_TreeNode *ListNode2;
  272.     struct MUI_NListtree_TreeNode *TreeNode2;
  273.     ULONG Flags;
  274. };
  275.  
  276.  
  277. struct MUIP_NListtree_Rename {
  278.     ULONG   MethodID;
  279.     struct  MUI_NListtree_TreeNode *TreeNode;
  280.     STRPTR  NewName;
  281.     ULONG   Flags;
  282. };
  283.  
  284.  
  285. struct MUIP_NListtree_Sort {
  286.     ULONG MethodID;
  287.     struct MUI_NListtree_TreeNode *ListNode;
  288.     ULONG Flags;
  289. };
  290.  
  291.  
  292. struct MUIP_NListtree_TestPos {
  293.     ULONG MethodID;
  294.     LONG  X;
  295.     LONG  Y;
  296.     APTR  Result;
  297. };
  298.  
  299.  
  300. struct MUIP_NListtree_Redraw {
  301.     ULONG MethodID;
  302.     struct MUI_NListtree_TreeNode *TreeNode;
  303.     ULONG Flags;
  304. };
  305.  
  306.  
  307. struct MUIP_NListtree_Select {
  308.     ULONG MethodID;
  309.     struct MUI_NListtree_TreeNode *TreeNode;
  310.     LONG    SelType,
  311.             SelFlags,
  312.             *State;
  313. };
  314.  
  315.  
  316. struct MUIP_NListtree_NextSelected {
  317.     ULONG MethodID;
  318.     struct MUI_NListtree_TreeNode **TreeNode;
  319. };
  320.  
  321.  
  322. struct MUIP_NListtree_MultiTest {
  323.     ULONG MethodID;
  324.     struct MUI_NListtree_TreeNode *TreeNode;
  325.     LONG    SelType,
  326.             SelFlags,
  327.             CurrType;
  328. };
  329.  
  330.  
  331. struct MUIP_NListtree_Copy {
  332.     ULONG MethodID;
  333.     struct MUI_NListtree_TreeNode *SourceListNode;
  334.     struct MUI_NListtree_TreeNode *SourceTreeNode;
  335.     struct MUI_NListtree_TreeNode *DestListNode;
  336.     struct MUI_NListtree_TreeNode *DestTreeNode;
  337.     ULONG Flags;
  338. };
  339.  
  340.  
  341. struct MUIP_NListtree_InsertStruct {
  342.     ULONG   MethodID;
  343.     STRPTR  Name;
  344.     APTR    User;
  345.     STRPTR  Delimiter;
  346.     ULONG   Flags;
  347. };
  348.  
  349.  
  350. struct MUIP_NListtree_Active {
  351.     ULONG MethodID;
  352.     LONG Pos;
  353.     struct MUI_NListtree_TreeNode *ActiveNode;
  354. };
  355.  
  356.  
  357. struct MUIP_NListtree_DoubleClick {
  358.     ULONG MethodID;
  359.     struct MUI_NListtree_TreeNode *TreeNode;
  360.     LONG Entry;
  361.     LONG Column;
  362. };
  363.  
  364.  
  365. struct MUIP_NListtree_PrevSelected {
  366.     ULONG MethodID;
  367.     struct MUI_NListtree_TreeNode **TreeNode;
  368. };
  369.  
  370.  
  371. struct MUIP_NListtree_CopyToClip {
  372.     ULONG MethodID;
  373.     struct MUI_NListtree_TreeNode *TreeNode;
  374.     LONG Pos;
  375.     LONG Unit;
  376. };
  377.  
  378.  
  379. struct  MUIP_NListtree_DropType {
  380.     ULONG MethodID;
  381.     LONG *Pos;
  382.     LONG *Type;
  383.     LONG MinX, MaxX, MinY, MaxY;
  384.     LONG MouseX, MouseY;
  385. };
  386.  
  387.  
  388. struct  MUIP_NListtree_DropDraw {
  389.     ULONG MethodID;
  390.     LONG Pos;
  391.     LONG Type;
  392.     LONG MinX, MaxX, MinY, MaxY;
  393. };
  394.  
  395.  
  396. /*** Special method values ***/
  397.  
  398. #define MUIV_NListtree_Close_ListNode_Root                  0
  399. #define MUIV_NListtree_Close_ListNode_Parent                -1
  400. #define MUIV_NListtree_Close_ListNode_Active                -2
  401.  
  402. #define MUIV_NListtree_Close_TreeNode_Head                  0
  403. #define MUIV_NListtree_Close_TreeNode_Tail                  -1
  404. #define MUIV_NListtree_Close_TreeNode_Active                -2
  405. #define MUIV_NListtree_Close_TreeNode_All                   -3
  406.  
  407.  
  408.  
  409. #define MUIV_NListtree_Exchange_ListNode1_Root              0
  410. #define MUIV_NListtree_Exchange_ListNode1_Active            -2
  411.  
  412. #define MUIV_NListtree_Exchange_TreeNode1_Head              0
  413. #define MUIV_NListtree_Exchange_TreeNode1_Tail              -1
  414. #define MUIV_NListtree_Exchange_TreeNode1_Active            -2
  415.  
  416. #define MUIV_NListtree_Exchange_ListNode2_Root              0
  417. #define MUIV_NListtree_Exchange_ListNode2_Active            -2
  418.  
  419. #define MUIV_NListtree_Exchange_TreeNode2_Head              0
  420. #define MUIV_NListtree_Exchange_TreeNode2_Tail              -1
  421. #define MUIV_NListtree_Exchange_TreeNode2_Active            -2
  422. #define MUIV_NListtree_Exchange_TreeNode2_Up                -5
  423. #define MUIV_NListtree_Exchange_TreeNode2_Down              -6
  424.  
  425.  
  426. #define MUIV_NListtree_FindName_ListNode_Root               0
  427. #define MUIV_NListtree_FindName_ListNode_Active             -2
  428.  
  429. #define MUIV_NListtree_FindName_Flag_SameLevel              (1<<15)
  430. #define MUIV_NListtree_FindName_Flag_Visible                (1<<14)
  431. #define MUIV_NListtree_FindName_Flag_Activate               (1<<13)
  432. #define MUIV_NListtree_FindName_Flag_Selected               (1<<11)
  433. #define MUIV_NListtree_FindName_Flag_StartNode              (1<<10)
  434. #define MUIV_NListtree_FindName_Flag_Reverse                (1<<9)
  435.  
  436.  
  437. #define MUIV_NListtree_FindUserData_ListNode_Root           0
  438. #define MUIV_NListtree_FindUserData_ListNode_Active         -2
  439.  
  440. #define MUIV_NListtree_FindUserData_Flag_SameLevel          (1<<15)
  441. #define MUIV_NListtree_FindUserData_Flag_Visible            (1<<14)
  442. #define MUIV_NListtree_FindUserData_Flag_Activate           (1<<13)
  443. #define MUIV_NListtree_FindUserData_Flag_Selected           (1<<11)
  444. #define MUIV_NListtree_FindUserData_Flag_StartNode          (1<<10)
  445. #define MUIV_NListtree_FindUserData_Flag_Reverse            (1<<9)
  446.  
  447.  
  448. #define MUIV_NListtree_GetEntry_ListNode_Root               0
  449. #define MUIV_NListtree_GetEntry_ListNode_Active             -2
  450. #define MUIV_NListtree_GetEntry_TreeNode_Active             -3
  451.  
  452. #define MUIV_NListtree_GetEntry_Position_Head               0
  453. #define MUIV_NListtree_GetEntry_Position_Tail               -1
  454. #define MUIV_NListtree_GetEntry_Position_Active             -2
  455. #define MUIV_NListtree_GetEntry_Position_Next               -3
  456. #define MUIV_NListtree_GetEntry_Position_Previous           -4
  457. #define MUIV_NListtree_GetEntry_Position_Parent             -5
  458.  
  459. #define MUIV_NListtree_GetEntry_Flag_SameLevel              (1<<15)
  460. #define MUIV_NListtree_GetEntry_Flag_Visible                (1<<14)
  461.  
  462.  
  463. #define MUIV_NListtree_GetNr_TreeNode_Active                -2
  464.  
  465. #define MUIV_NListtree_GetNr_Flag_CountAll                  (1<<15)
  466. #define MUIV_NListtree_GetNr_Flag_CountLevel                (1<<14)
  467. #define MUIV_NListtree_GetNr_Flag_CountList                 (1<<13)
  468. #define MUIV_NListtree_GetNr_Flag_ListEmpty                 (1<<12)
  469. #define MUIV_NListtree_GetNr_Flag_Visible                   (1<<11)
  470.  
  471.  
  472. #define MUIV_NListtree_Insert_ListNode_Root                 0
  473. #define MUIV_NListtree_Insert_ListNode_Active               -2
  474. #define MUIV_NListtree_Insert_ListNode_LastInserted         -3
  475. #define MUIV_NListtree_Insert_ListNode_ActiveFallback       -4
  476.  
  477. #define MUIV_NListtree_Insert_PrevNode_Head                 0
  478. #define MUIV_NListtree_Insert_PrevNode_Tail                 -1
  479. #define MUIV_NListtree_Insert_PrevNode_Active               -2
  480. #define MUIV_NListtree_Insert_PrevNode_Sorted               -4
  481.  
  482. #define MUIV_NListtree_Insert_Flag_Active                   (1<<13)
  483. #define MUIV_NListtree_Insert_Flag_NextNode                 (1<<12)
  484.  
  485.  
  486. #define MUIV_NListtree_Move_OldListNode_Root                0
  487. #define MUIV_NListtree_Move_OldListNode_Active              -2
  488.  
  489. #define MUIV_NListtree_Move_OldTreeNode_Head                0
  490. #define MUIV_NListtree_Move_OldTreeNode_Tail                -1
  491. #define MUIV_NListtree_Move_OldTreeNode_Active              -2
  492.  
  493. #define MUIV_NListtree_Move_NewListNode_Root                0
  494. #define MUIV_NListtree_Move_NewListNode_Active              -2
  495.  
  496. #define MUIV_NListtree_Move_NewTreeNode_Head                0
  497. #define MUIV_NListtree_Move_NewTreeNode_Tail                -1
  498. #define MUIV_NListtree_Move_NewTreeNode_Active              -2
  499. #define MUIV_NListtree_Move_NewTreeNode_Sorted              -4
  500.  
  501. #define MUIV_NListtree_Move_Flag_KeepStructure              (1<<13)
  502.  
  503.  
  504. #define MUIV_NListtree_Open_ListNode_Root                   0
  505. #define MUIV_NListtree_Open_ListNode_Parent                 -1
  506. #define MUIV_NListtree_Open_ListNode_Active                 -2
  507. #define MUIV_NListtree_Open_TreeNode_Head                   0
  508. #define MUIV_NListtree_Open_TreeNode_Tail                   -1
  509. #define MUIV_NListtree_Open_TreeNode_Active                 -2
  510. #define MUIV_NListtree_Open_TreeNode_All                    -3
  511.  
  512.  
  513.  
  514. #define MUIV_NListtree_Remove_ListNode_Root                 0
  515. #define MUIV_NListtree_Remove_ListNode_Active               -2
  516. #define MUIV_NListtree_Remove_TreeNode_Head                 0
  517. #define MUIV_NListtree_Remove_TreeNode_Tail                 -1
  518. #define MUIV_NListtree_Remove_TreeNode_Active               -2
  519. #define MUIV_NListtree_Remove_TreeNode_All                  -3
  520. #define MUIV_NListtree_Remove_TreeNode_Selected             -4
  521.  
  522. #define MUIV_NListtree_Remove_Flag_NoActive                 (1<<13)
  523.  
  524.  
  525.  
  526.  
  527. #define MUIV_NListtree_Rename_TreeNode_Active               -2
  528.  
  529. #define MUIV_NListtree_Rename_Flag_User                     (1<<8)
  530. #define MUIV_NListtree_Rename_Flag_NoRefresh                (1<<9)
  531.  
  532.  
  533. #define MUIV_NListtree_Sort_ListNode_Root                   0
  534. #define MUIV_NListtree_Sort_ListNode_Active                 -2
  535. #define MUIV_NListtree_Sort_TreeNode_Active                 -3
  536.  
  537. #define MUIV_NListtree_Sort_Flag_RecursiveOpen              (1<<13)
  538. #define MUIV_NListtree_Sort_Flag_RecursiveAll               (1<<12)
  539.  
  540.  
  541. #define MUIV_NListtree_TestPos_Result_None                  0
  542. #define MUIV_NListtree_TestPos_Result_Above                 1
  543. #define MUIV_NListtree_TestPos_Result_Below                 2
  544. #define MUIV_NListtree_TestPos_Result_Onto                  3
  545. #define MUIV_NListtree_TestPos_Result_Sorted                4
  546.  
  547. #define MUIV_NListtree_Redraw_Active                        -1
  548. #define MUIV_NListtree_Redraw_All                           -2
  549.  
  550. #define MUIV_NListtree_Redraw_Flag_Nr                       (1<<15)
  551.  
  552. #define MUIV_NListtree_Select_Active                        -1
  553. #define MUIV_NListtree_Select_All                           -2
  554. #define MUIV_NListtree_Select_Visible                       -3
  555.  
  556. #define MUIV_NListtree_Select_Off                           0
  557. #define MUIV_NListtree_Select_On                            1
  558. #define MUIV_NListtree_Select_Toggle                        2
  559. #define MUIV_NListtree_Select_Ask                           3
  560.  
  561. #define MUIV_NListtree_Select_Flag_Force                    (1<<15)
  562.  
  563.  
  564. #define MUIV_NListtree_NextSelected_Start                   -1
  565. #define MUIV_NListtree_NextSelected_End                     -1
  566.  
  567.  
  568. #define MUIV_NListtree_Copy_SourceListNode_Root             0
  569. #define MUIV_NListtree_Copy_SourceListNode_Active           -2
  570.  
  571. #define MUIV_NListtree_Copy_SourceTreeNode_Head             0
  572. #define MUIV_NListtree_Copy_SourceTreeNode_Tail             -1
  573. #define MUIV_NListtree_Copy_SourceTreeNode_Active           -2
  574.  
  575. #define MUIV_NListtree_Copy_DestListNode_Root               0
  576. #define MUIV_NListtree_Copy_DestListNode_Active             -2
  577.  
  578. #define MUIV_NListtree_Copy_DestTreeNode_Head               0
  579. #define MUIV_NListtree_Copy_DestTreeNode_Tail               -1
  580. #define MUIV_NListtree_Copy_DestTreeNode_Active             -2
  581. #define MUIV_NListtree_Copy_DestTreeNode_Sorted             -4
  582.  
  583. #define MUIV_NListtree_Copy_Flag_KeepStructure              (1<<13)
  584.  
  585.  
  586. #define MUIV_NListtree_PrevSelected_Start                   -1
  587. #define MUIV_NListtree_PrevSelected_End                     -1
  588.  
  589.  
  590. #define MUIV_NListtree_CopyToClip_Active                    -1
  591.  
  592.  
  593. /*** Hook message structs ***/
  594.  
  595. struct MUIP_NListtree_CloseMessage
  596. {
  597.     ULONG HookID;
  598.     struct MUI_NListtree_TreeNode *TreeNode;
  599. };
  600.  
  601.  
  602. struct MUIP_NListtree_CompareMessage
  603. {
  604.     ULONG HookID;
  605.     struct MUI_NListtree_TreeNode *TreeNode1;
  606.     struct MUI_NListtree_TreeNode *TreeNode2;
  607.     LONG SortType;
  608. };
  609.  
  610.  
  611. struct MUIP_NListtree_ConstructMessage
  612. {
  613.     ULONG HookID;
  614.     STRPTR Name;
  615.     APTR UserData;
  616.     APTR MemPool;
  617.     ULONG Flags;
  618. };
  619.  
  620.  
  621. struct MUIP_NListtree_DestructMessage
  622. {
  623.     ULONG HookID;
  624.     STRPTR Name;
  625.     APTR UserData;
  626.     APTR MemPool;
  627.     ULONG Flags;
  628. };
  629.  
  630.  
  631. struct MUIP_NListtree_DisplayMessage
  632. {
  633.     ULONG   HookID;
  634.     struct  MUI_NListtree_TreeNode *TreeNode;
  635.     LONG    EntryPos;
  636.     STRPTR  *Array;
  637.     STRPTR  *Preparse;
  638. };
  639.  
  640.  
  641. struct MUIP_NListtree_CopyToClipMessage
  642. {
  643.     ULONG   HookID;
  644.     struct  MUI_NListtree_TreeNode *TreeNode;
  645.     LONG    Pos;
  646.     LONG    Unit;
  647. };
  648.  
  649.  
  650. struct MUIP_NListtree_FindNameMessage
  651. {
  652.     ULONG   HookID;
  653.     STRPTR  Name;
  654.     STRPTR  NodeName;
  655.     APTR    UserData;
  656.     ULONG   Flags;
  657. };
  658.  
  659.  
  660. struct MUIP_NListtree_FindUserDataMessage
  661. {
  662.     ULONG   HookID;
  663.     APTR    User;
  664.     APTR    UserData;
  665.     STRPTR  NodeName;
  666.     ULONG   Flags;
  667. };
  668.  
  669.  
  670. struct MUIP_NListtree_OpenMessage
  671. {
  672.     ULONG HookID;
  673.     struct MUI_NListtree_TreeNode *TreeNode;
  674. };
  675.  
  676.  
  677. struct MUIP_NListtree_MultiTestMessage
  678. {
  679.     ULONG HookID;
  680.     struct MUI_NListtree_TreeNode *TreeNode;
  681.     LONG    SelType,
  682.             SelFlags,
  683.             CurrType;
  684. };
  685.  
  686. #endif /* NLISTTREE_MCC_H */
  687.